﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
//数组 一组相同元素的集合
 
//int main()
//{
//	int a = 1;
//	int b = 2;
//	int c = 3;
//	int arr[3] = { 1,2,3 };
//	//		下标    0 1 2
//	//数组下标是从0开始
//	//访问数组元素
//	//printf("%d", arr[0]);//
//	//printf("%d", arr[1]);
//	//printf("%d", arr[2]);
//	int i = 0;
//	int j = 0;
//	//输入
//	while (j < 3)
//	{
//		scanf("%d", &arr[j]);
//		j++;
//	}
//	//输出
//	while (i < 3)
//	{
//		printf("%d ", arr[i]);
//		i++;
//	}
//	return 0;
//}

//操作符

//算数操作数  + - * / %
//int main()
//{
//	//介绍操作符/ %
//	int a = 12;
//	int b = 5;
//	int x = a / b;//对于整数相除 结果为商
//	int y = a % b;//取摸的两个操作数只能是整数
//	printf("%d\n", x);//2
//	printf("%d\n", y);//2
//	//当/操作数至少存在一个小数时，结果为小数
//	float c = (a * 1.0) / b;
//	printf("%f", c);//2.4
//
//	return 0;
//}
 
//与二进制位有关的操作符 << >> | & ^
//这里不做详细解释 后面会解释

//赋值操作符 = += -= *= /= &= ^=  |=    >>=   <<=
//int main()
//{
//	int a;
//	// = 可以用来改变变量的值
//	a = 1;
//	a = 2;
//	// +=
//	a = 0;
//	a += 1;//等价于a = a + 1
//	//同理 -= *=
//	a -= 1;//等价于 a = a - 1
//	a *= 2;//等价于 a = a * 2
//
//	return 0;
//}

//单目操作符
// 
//3				 +				5
//左操作数	双目操作符	右操作数
//int main()
//{
//	int flag = 5;
//	//flag为真
//	if (flag)
//		printf("hehe");
//	//flag为假
//	if (!flag)
//		printf("haha");
//	return 0;
//}


//int main()
//{
//	int a = 10;
//	a = +a;//a的值不变
//	printf("%d\n",a );
//	a = -a;//a的值的负数
//	printf("%d\n", a);
//}


//int main()
//{
//	int arr[10] = { 0 };
//	printf("%d\n", sizeof(arr));//40
//	printf("%d\n", sizeof(int[10]));//40
//	printf("%d\n", sizeof(arr[0]));//4
//	printf("%d", sizeof(arr) / sizeof(int));//计算数组中的元素个数
//	return 0;
//}

//int main()
//{
//char str[] = "abcd";
//	printf("%d\n", sizeof(str)); //5
//	printf("%d\n", strlen(str)); //4
//	//szieof 只求类型所占空间的多少 不管空间中存放的是什么
//	//strlen 统计的是字符串的长度 也就是\0之前的字符个数
//	return 0;
//}

//int main()
//{
//	int a = 10;
//	int b = a++;//后置++ 先使用 后++
//	// b = a,a++;
//	printf("%d\n", a);//11
//	printf("%d\n", b);//10
//	int c = ++a;//前置++ 先++ 后使用
//	// a++,c = a;
//	printf("%d\n", a);//11
//	printf("%d\n", c);//11
//
//	return 0;
//}

//int main()
//{
//	int a = 10;
//	int b = a--;//后置++ 先使用 后++
//	// b = a,a--;
//	printf("%d\n", a);//9
//	printf("%d\n", b);//10
//	int c = --a;//前置++ 先++ 后使用
//	// a--,c = a;
//	printf("%d\n", a);//9
//	printf("%d\n", c);//9
//
//	return 0;
//}

//强制类型转换操作符
//int main()
//{
//	int a = 3.14;//发出警告发生自动类型转换
//		int b = (int)3.14;//无警告
//		return 0;
//}

//逻辑操作符
//int main()
//{
//	//年龄在18~30岁之间的人
//	int age;
//	if (30 >= age >= 18);//不能这么表示 逻辑错误 系统会将这个式子从左往右看
//		//比如age是20 30>=20的结果为1 1>=18为0
//		//应该这么表示
//		if (30 >= age && 18 <= age);
//	if (A&&B)//A B同时成立
//	if (A||B)//A B不同时为假
//}


//条件操作符
//exp1 ? exp2 : exp3
//int main()
//{
//	int a;
//	a = 1 < 3 ? 3 : 4; //a=4
//	//若exp1成立 则直接计算exp2 不计算exp3
//	//若exp1不成立 则直接计算exp3 不计算exp2
//	return 0;
//}

//逗号操作符
//exp1,exp2,exp3……expN
//int main()
//{
//	int a = (1, 2, 3, 4, 5);
//	pritnf("%d\n", a);//5
//	//逗号操作符从左到右一次计算每个exp 表达式的结果最后为最后一个式子的结果
//	return 0;
//}